package org.subatu.orm.page;


/**
 * 分页处理工具类
 */
public class PageHelper {

    private static final ThreadLocal<PageInfo> LOCAL_PAGE = new ThreadLocal<>();

    // 创建分页
    public static void startPage() {
        PageInfo pageInfo = new PageInfo();
        startPage(pageInfo);
    }

    public static void startPage(PageInfo pageInfo) {
        // 设置到 ThreadLocal 中
        LOCAL_PAGE.set(pageInfo);
    }

    public static PageInfo getLocalPage() {
        // 设置到 ThreadLocal 中
        return LOCAL_PAGE.get();
    }


    public static void clearPage() {
        LOCAL_PAGE.remove();
    }

    // 判断 原始sql 是否需要分页
    public static boolean isNeedPage(String sql) {
        if (getLocalPage() == null) {
            return false;
        }
        // 原始sql包含分页,架构就不分页
        if (sql.toUpperCase().contains(" LIMIT ")) {
            return false;
        }
        return true;
    }
}
